/*
 * To change this template, choose Tools | Templates
 * and open the template in the editor.
 */

package co.uniandes.patrones.beans;

import co.uniandes.patrones.entidades.AdministradorSolicitudes;
import co.uniandes.patrones.entidades.AdministradorUsuarios;
import co.uniandes.patrones.entidades.Solicitud;
import co.uniandes.patrones.entidades.Usuario;
import javax.faces.context.FacesContext;
import javax.servlet.http.HttpSession;

/**
 *
 * @author alvar-go@uniandes.edu.co
 */
public class EnviarResultadoBean {

     private final static String ENVIO_EXITOSO = "versolicitudestaller";

    private String identificacion;

    private String placa;

    private AdministradorSolicitudes admin;

    private Solicitud solicitud;

    private Usuario clienteActual;

    private String descripcion;

    private double costo;

    public EnviarResultadoBean() {
        cargarDatos();
    }

    public EnviarResultadoBean(String identificacion, String placa, AdministradorSolicitudes admin, Solicitud solicitud, Usuario clienteActual, String descripcion, double costo) {
        this.identificacion = identificacion;
        this.placa = placa;
        this.admin = admin;
        this.solicitud = solicitud;
        this.clienteActual = clienteActual;
        this.descripcion = descripcion;
        this.costo = costo;
    }



    private void cargarDatos(){
        FacesContext context = FacesContext.getCurrentInstance();
        HttpSession sesion = (HttpSession) context.getExternalContext().getSession(false);
        if( sesion != null){
             AdministradorUsuarios ad = AdministradorUsuarios.getInstancia();
             admin = AdministradorSolicitudes.getInstancia();
             clienteActual = ad.buscarUsuario((String)sesion.getAttribute(IngresoBean.SESION_LOGIN));
             identificacion = clienteActual.getTipo() +":" + clienteActual.getLogin();
             placa = (String)sesion.getAttribute(SolicitudesTallerBean.SESION_PLACA);
             solicitud = admin.darSolicitud(placa);
             descripcion = solicitud.getDescripcion();
        }
    }

    public String getDescripcion() {
        return descripcion;
    }

    public void setDescripcion(String descripcion) {
        this.descripcion = descripcion;
    }

    public Solicitud getSolicitud() {
        return solicitud;
    }

    public void setSolicitud(Solicitud solicitud) {
        this.solicitud = solicitud;
    }

    public String getPlaca() {
        return placa;
    }

    public String getIdentificacion() {
        return identificacion;
    }

    public void setPlaca(String placa) {
        this.placa = placa;
    }

    public void setIdentificacion(String identificacion) {
        this.identificacion = identificacion;
    }

    public String enviarResultado(){
        solicitud.setEstado(Solicitud.ESTADO_TERMINADA);
        solicitud.setDescripcion(descripcion);
        solicitud.setCosto(costo);
        return  ENVIO_EXITOSO;
    }

    public double getCosto() {
        return costo;
    }

    public void setCosto(double costo) {
        this.costo = costo;
    }
}
